import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'; // 引入 path 模块
import { visualizer } from 'rollup-plugin-visualizer'; // 导入 visualizer

export default defineConfig({
  plugins: [
    vue(),
    visualizer({ 
      open: true, // 构建后自动在浏览器打开报告
      gzipSize: true, // 显示 gzip 压缩后的大小
      brotliSize: true, // 显示 brotli 压缩后的大小
    }) 
  ],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'), // 设置 @ 指向 src 目录
    },
  },
  server: {
    proxy: { 
      '/api': {
        target: 'http://localhost:3000',
        changeOrigin: true,
      }
    }
  },
  build: {
    rollupOptions: {
      output: {
        manualChunks(id) {
          if (id.includes('node_modules')) {
            // 将所有 node_modules 的依赖打包到一个 vendor chunk
            // 可以进一步细化，例如将 element-plus 单独打包
            if (id.includes('element-plus')) {
              return 'vendor-element-plus';
            }
            // 其他大型库也可以类似处理
            if (id.includes('vue') || id.includes('vue-router') || id.includes('vuex') || id.includes('axios')) {
              return 'vendor-core'; 
            }
            return 'vendor'; // 其他 node_modules 依赖
          }
        }
      }
    },
    chunkSizeWarningLimit: 1000, // 同时提高警告阈值，避免过多干扰，但仍需关注实际大小
  }
})